1. Field of the Invention
The invention relates generally to packet buffer units having token buckets and control of such buffer units.
2. Description of the Related Art
Packet readout control for a packet buffer includes a “token bucket” algorithm. This token bucket algorithm is a technique for use in a packet buffer which has stored data packets therein, for controlling readout of some of the data packets out of the packet buffer. In this regard, a “token” represents authorization, permission or privilege of readout of a unit of data. A “token bucket” refers to a buffer for temporary storage of tokens which has been generated and added to the token bucket at a predetermined rate. When a certain number of tokens have been removed and used (or spent) from the token bucket, data packets are read out of the packet buffer a number of data packets which depends on the number of tokens that were removed and used from the token bucket.
FIG. 1 illustrates the configuration of a conventional exemplary buffer unit 1.
As illustrated in FIG. 1, the buffer unit 1 includes a packet buffer 10; a packet reader 11; a token bucket 12; a token generator 13; and a token controller 14. These components can be implemented in software, that is, by executing a predetermined program by a computer mounted in the buffer unit 1 (e.g., a communication device having a buffer section).
The packet buffer 10 stores data packets temporarily. The packet reader 11 reads out of the packet buffer 10 a number of data packets which depends on the number of tokens that were removed and used (or spent) from the token bucket 12, and the packet reader 11 outputs the read data packets. The token bucket 12 stores tokens therein temporarily, with a buffer size which represents the maximum number of tokens that can be stored (hereinafter, referred to as “token bucket size”). The token generator 13 generates new tokens at a predetermined rate (referred to the number of tokens to be newly generated per unit time, and hereinafter referred to as “token rate (or token fill rate)”), and adds the generated tokens to the token bucket 12 for filling. The token controller 14 controls the number of tokens to be removed and used from the token bucket 12.
For packet readout control for a packet buffer using a token bucket, the selection of the token bucket size of the token bucket 12 and the selection of the token rate at which tokens are generated and added by the token generator 13 are important.
Traditionally, it is typical to prepare token buckets on a per-traffic-type basis, for controlling communication network traffic. A technique is known of controlling packet readout for a packet buffer, in combination with a plurality of token buckets (see Japanese Patent Application Publication No. 2007-049591, for example). This technique allows the token buckets to be assigned to a plurality of traffic types, on a one-on-one correspondence.
Another technique is also known of dynamically changing the token bucket size and the token rate of a token bucket, depending on the time-varying congestion level of a network (see Japanese Patent Application Publication Nos. 2007-189592, 2007-221529, and 2007-097045, for example). This technique, which uses single token buckets for the respective traffic types, allows the values of parameters including the token bucket size and the token size of each token bucket to be dynamically modified, with the capability of adaptive control of the parameter values depending on such as the congestion level of a network.
The readout control of packets from a packet buffer using a token bucket would regulate the long-term average traffic volume, while allowing for burst traffic to be transferred centrally within a short term. The maximum allowed burst traffic volume depends on the token bucket size, while the long-term average traffic volume is limited by the token rate.
In this regard, it is also important to control traffic on a per-traffic-type basis, using tradeoff between the burst traffic volume and the average traffic volume. More specifically, an approach of increasing the average traffic volume while limiting the maximum allowed burst traffic volume, or a contrary approach of increasing the maximum allowed burst traffic volume while limiting the average traffic volume, is selected in view of potential effects on a network capacity, on a per-traffic-type basis.